home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 071-080 / amok71 / treq / treq.mod < prev    next >
Text File  |  1993-11-04  |  2KB  |  74 lines

  1. (* ------------------------------------------------------------------------
  2.   :Program.       TReq
  3.   :Contents.      Turns DOS-Requesters on and off
  4.   :Usage.         Usage: TReq PROCESS
  5.   :Usage.         PROCESS is the name of the process otherwise the
  6.   :Usage.         current process is affected
  7.   :Author.        Kai Bolay [kai]
  8.   :Address.       Snail-Mail:            E-Mail:
  9.   :Address.       Hoffmannstraße 168     UUCP: kai@amokle.adsp.sub.org
  10.   :Address.       D-7250 Leonberg 1      FIDO: 2:2407/104.3
  11.   :History.       v1.0 [kai] 18-May-92
  12.   :History.       v1.1 [kai] 21-May-92 (+ Forbid-Locking)
  13.   :Copyright.     FD
  14.   :Language.      Oberon
  15.   :Translator.    AMIGA OBERON v2.25d
  16.   :Remark.        Requires OS 2.04
  17. ------------------------------------------------------------------------ *)
  18. MODULE TReq;
  19.  
  20. IMPORT
  21.   d: Dos, e: Exec, y: SYSTEM;
  22. CONST
  23.   Template = "PROCESS";
  24.   Version = "$VER: TReq 1.1 (21-May-92) by Kai Bolay\n\r";
  25. VAR
  26.   RD: d.RDArgsPtr;
  27.   Array: ARRAY 1 OF LONGINT;
  28.   TaskName: e.STRPTR;
  29.   Process: d.ProcessPtr;
  30.  
  31. BEGIN
  32.   y.SETREG (0, d.Write (d.Output (), Version[6], y.SIZE (Version)-6));
  33.   (* 2.04 should be :-) *)
  34.   IF d.dos.lib.version < 37 THEN
  35.     IF d.Output () # NIL THEN
  36.       y.SETREG (0, d.Write (d.Output (), "Sorry, I need OS 2.04!\n", 23));
  37.     END;
  38.     HALT (20);
  39.   END;
  40.   RD := d.ReadArgs (Template, Array, NIL);
  41.   IF RD = NIL THEN
  42.     d.PrintF ("\[1mUsage: TReq %s\[0m\nTurns DOS-Requesters on and off\n",
  43.               y.ADR (Template));
  44.     HALT (20);
  45.   END;
  46.   e.Forbid;
  47.   IF Array[0] = NIL THEN
  48.     Process := e.FindTask (NIL);
  49.   ELSE
  50.     TaskName := y.VAL (e.STRPTR, Array[0]);
  51.     Process := e.FindTask (TaskName^);
  52.     IF Process = NIL THEN
  53.       d.PrintF ("Process not found!\n");
  54.       HALT (20);
  55.     END;
  56.   END;
  57.   IF Process.task.node.type # e.process THEN
  58.     d.PrintF ("This is no Process!\n");
  59.     HALT (20);
  60.   END;
  61.   IF Process.windowPtr # -1 THEN
  62.     Process.windowPtr := -1;
  63.     d.PrintF ("DOS-Requesters are now turned off!\n");
  64.     HALT (0);
  65.   ELSE
  66.     Process.windowPtr := 0;
  67.     d.PrintF ("DOS-Requesters are now turned on!\n");
  68.     HALT (5);
  69.   END;
  70.   e.Permit;
  71. CLOSE
  72.   IF RD # NIL THEN d.FreeArgs (RD); RD := NIL END;
  73. END TReq.
  74.